home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / io / ByteArrayInputStream.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.1 KB  |  82 lines

  1. package java.io;
  2.  
  3. public class ByteArrayInputStream extends InputStream {
  4.    protected byte[] buf;
  5.    protected int pos;
  6.    protected int mark = 0;
  7.    protected int count;
  8.  
  9.    public ByteArrayInputStream(byte[] var1) {
  10.       this.buf = var1;
  11.       this.pos = 0;
  12.       this.count = var1.length;
  13.    }
  14.  
  15.    public ByteArrayInputStream(byte[] var1, int var2, int var3) {
  16.       this.buf = var1;
  17.       this.pos = var2;
  18.       this.count = Math.min(var2 + var3, var1.length);
  19.       this.mark = var2;
  20.    }
  21.  
  22.    public synchronized int read() {
  23.       return this.pos < this.count ? this.buf[this.pos++] & 255 : -1;
  24.    }
  25.  
  26.    public synchronized int read(byte[] var1, int var2, int var3) {
  27.       if (var1 == null) {
  28.          throw new NullPointerException();
  29.       } else if (var2 >= 0 && var3 >= 0 && var3 <= var1.length - var2) {
  30.          if (this.pos >= this.count) {
  31.             return -1;
  32.          } else {
  33.             if (this.pos + var3 > this.count) {
  34.                var3 = this.count - this.pos;
  35.             }
  36.  
  37.             if (var3 <= 0) {
  38.                return 0;
  39.             } else {
  40.                System.arraycopy(this.buf, this.pos, var1, var2, var3);
  41.                this.pos += var3;
  42.                return var3;
  43.             }
  44.          }
  45.       } else {
  46.          throw new IndexOutOfBoundsException();
  47.       }
  48.    }
  49.  
  50.    public synchronized long skip(long var1) {
  51.       if ((long)this.pos + var1 > (long)this.count) {
  52.          var1 = (long)(this.count - this.pos);
  53.       }
  54.  
  55.       if (var1 < 0L) {
  56.          return 0L;
  57.       } else {
  58.          this.pos = (int)((long)this.pos + var1);
  59.          return var1;
  60.       }
  61.    }
  62.  
  63.    public synchronized int available() {
  64.       return this.count - this.pos;
  65.    }
  66.  
  67.    public boolean markSupported() {
  68.       return true;
  69.    }
  70.  
  71.    public void mark(int var1) {
  72.       this.mark = this.pos;
  73.    }
  74.  
  75.    public synchronized void reset() {
  76.       this.pos = this.mark;
  77.    }
  78.  
  79.    public void close() throws IOException {
  80.    }
  81. }
  82.